package com.undsf.kanmu.kcsapi.messages

import com.fasterxml.jackson.annotation.JsonProperty

/**
 * Created by Arathi on 2017/8/24.
 */
class Start2 {
    @JsonProperty("api_mst_ship")
    var ship: List<Ship>? = null

    @JsonProperty("api_mst_shipgraph")
    var tachie: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_slotitem_equiptype")
    var equip_type: List<EquipType>? = null

    @JsonProperty("api_mst_equip_exslot")
    var exslot: List<Int>? = null

    @JsonProperty("api_mst_equip_exslot_ship")
    var exslot_ship: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_stype")
    var ship_type: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_slotitem")
    var equipment: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_furniture")
    var furniture: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_furnituregraph")
    var furniture_graphic: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_useitem")
    var use_item: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_payitem")
    var pay_item: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_item_shop")
    var item_shop: ItemShop? = null

    @JsonProperty("api_mst_maparea")
    var map_area: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_mapinfo")
    var map_info: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_mapbgm")
    var map_bgm: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_mission")
    var mission: List<Map<String, Any>>? = null

    @JsonProperty("api_mst_const")
    var constant: Map<String,StringIntValue>? = null

    @JsonProperty("api_mst_shipupgrade")
    var ship_upgrade: List<ShipUpgrade>? = null

    @JsonProperty("api_mst_bgm")
    var bgm: List<Map<String, Any>>? = null

    data class Ship(
            @JsonProperty("api_id")
            var id: Int,
            @JsonProperty("api_sortno")
            var sortno: Int?,
            @JsonProperty("api_name")
            var name: String,
            @JsonProperty("api_yomi")
            var yomi: String,
            @JsonProperty("api_stype")
            var ship_type: Int,
            @JsonProperty("api_ctype")
            var class_id: Int,
            @JsonProperty("api_afterlv")
            var upgrade_level: Int?,
            @JsonProperty("api_aftershipid")
            var upgraded_ship_id: Int?,
            @JsonProperty("api_taik")
            var hp: List<Int>?,
            @JsonProperty("api_souk")
            var armor: List<Int>?,
            @JsonProperty("api_houg")
            var firepower: List<Int>?,
            @JsonProperty("api_raig")
            var torpedo: List<Int>?,
            @JsonProperty("api_tyku")
            var anti_air: List<Int>?,
            @JsonProperty("api_tais")
            var anti_submarine: List<Int>?,
            @JsonProperty("api_luck")
            var luck: List<Int>?,
            @JsonProperty("api_soku")
            var speed: Int,
            @JsonProperty("api_leng")
            var range: Int?,
            @JsonProperty("api_slot_num")
            var slot_num: Int,
            @JsonProperty("api_maxeq")
            var aircrafts: List<Int>?,
            @JsonProperty("api_buildtime")
            var build_time: Int?,
            @JsonProperty("api_broken")
            var broken_resources: List<Int>?,
            @JsonProperty("api_powup")
            var powerup_points: List<Int>?,
            @JsonProperty("api_backs")
            var rare_rank: Int?,
            @JsonProperty("api_getmes")
            var getting_message: String?,
            @JsonProperty("api_afterfuel")
            var upgrade_fuel: Int?,
            @JsonProperty("api_afterbull")
            var upgrade_bullet: Int?,
            @JsonProperty("api_fuel_max")
            var fuel: Int?,
            @JsonProperty("api_bull_max")
            var bullet: Int?,
            @JsonProperty("api_voicef")
            var voice: Int?
    )

    class Tachie {}

    data class EquipType(
            @JsonProperty("api_id")
            var id: Int,
            @JsonProperty("api_name")
            var name: String,
            @JsonProperty("api_show_flg")
            var show_flag: Int
    )

    data class ItemShop(
            var api_cabinet_1: List<Int>,
            var api_cabinet_2: List<Int>
    )

    data class ShipUpgrade(
            @JsonProperty("api_id")
            var id: Int,
            @JsonProperty("api_current_ship_id")
            var current_ship_id: Int,
            @JsonProperty("api_original_ship_id")
            var origin_ship_id: Int,
            @JsonProperty("api_upgrade_type")
            var upgrade_type: Int,
            @JsonProperty("api_upgrade_level")
            var upgrade_level: Int,
            @JsonProperty("api_drawing_count")
            var drawing_count: Int,  // 图纸
            @JsonProperty("api_catapult_count")
            var catapult_count: Int,  // 甲板
            @JsonProperty("api_sortno")
            var sortno: Int
    )

    data class StringIntValue(
            @JsonProperty("api_string_value")
            var string_value: String,
            @JsonProperty("api_int_value")
            var int_value: Int
    )
}
